IF exists(SELECT * FROM dbo.sysobjects WHERE name='RV_weekroosterTitKlas' AND xtype='P') 
BEGIN
	DROP PROCEDURE RV_weekroosterTitKlas
END
GO

create procedure RV_weekroosterTitKlas
(@klas varchar(5),@dag datetime)
as
set nocount on


------------------------------------------------------
--    VOORAF
------------------------------------------------------

-- Bepalen van de onderzochte dag(en)
declare @zondag datetime
declare @maandag datetime
declare @dinsdag datetime
declare @woensdag datetime
declare @donderdag datetime
declare @vrijdag datetime

set @zondag = dateAdd(d,1 - datePart(dw,@dag),@dag)
set @maandag = dateAdd(d,2 - datePart(dw,@dag),@dag) 
set @dinsdag = dateAdd(d,3 - datePart(dw,@dag),@dag)
set @woensdag = dateAdd(d,4 - datePart(dw,@dag),@dag)
set @donderdag = dateAdd(d,5 - datePart(dw,@dag),@dag)
set @vrijdag = dateAdd(d,6 - datePart(dw,@dag),@dag)

-- Bepalen van de roostervarianten.

declare @vandaag dateTime
declare @datum dateTime
declare @var varchar(10)
declare @ma varchar(10)
declare @di varchar(10)
declare @wo varchar(10)
declare @do varchar(10)
declare @vr varchar(10)

declare kalender cursor for
select variant,datum from leerlingen..kalender 
where (datum > @zondag) and (datum <= @vrijdag)
order by datum
open kalender
fetch next from kalender into @var,@datum
while (@@fetch_status = 0)
begin
	if datepart(dw,@datum) = 2 set @ma = '%' + @var + '%'
	if datepart(dw,@datum) = 3 set @di = '%' + @var + '%'
	if datepart(dw,@datum) = 4 set @wo = '%' + @var + '%'
	if datepart(dw,@datum) = 5 set @do = '%' + @var + '%'
	if datepart(dw,@datum) = 6 set @vr = '%' + @var + '%'
	fetch next from kalender into @var,@datum
end
close kalender
deallocate kalender

create table #leraarRooster
	(deLeraar varchar(4),
	hetVak varchar(2),
	deKlas varchar(20),
	deDag varchar(2),
	hetUur int,
	hetLokaal varchar(20))

create table #seminarieRooster
	(deLeraar varchar(4),
	hetVak varchar(2),
	deKlas varchar(20),
	deDag varchar(2),
	hetUur int,
	hetLokaal varchar(20))

-- De dagen
select '4' as volgNr,'do' as kort,'Donderdag' as lang into #dagen
insert into #dagen(volgNr,kort,lang) values('2','di','Dinsdag')
insert into #dagen(volgNr,kort,lang) values('3','wo','Woensdag')
insert into #dagen(volgNr,kort,lang) values('1','ma','Maandag')
insert into #dagen(volgNr,kort,lang) values('5','vr','Vrijdag')

create table #leraarsVariant (leraarDag varchar(10))
create table #seminarieVariant (leraarDag varchar(10))

declare @dagKort varchar(2)
declare @dagLang varchar(12)
declare @volgUur int
declare @uur varchar(2)
declare @vak varchar(2)
declare @lokalen varchar(1000)

-------------------------------------------------------------------------------------
-- Opstellen van de roostervarianten
-------------------------------------------------------------------------------------

-- Vullen van een hulptabel van klasnamen met relevante varianten

delete from #leraarsVariant
insert into #leraarsVariant
select deDag+'-'+deLeraar
from leraars..TitWebRooster where  
	deKlas = @klas and
	  not (variant is null) and 
	  (((deDag = 'ma') and charIndex(variant,@ma) > 0) or
	   ((deDag = 'di') and charIndex(variant,@di) > 0) or
	   ((deDag = 'wo') and charIndex(variant,@wo) > 0) or
	   ((deDag = 'do') and charIndex(variant,@do) > 0) or
	   ((deDag = 'vr') and charIndex(variant,@vr) > 0))

-- Opzoeken van de basisgegevens. 
-- Als er een variant is, wordt deze gebruikt in plaats van de standaardgegevens.    
 
delete from #leraarRooster

insert into #leraarRooster
    select deLeraar,hetVak,deKlas,deDag,hetUur,hetLokaal
from leraars..TitWebRooster 
where deKlas = @klas
	and not(deDag + '-' + deLeraar in (select leraarDag from #leraarsVariant))
	and variant is null
     union  
(select deLeraar,hetVak,deKlas,deDag,hetUur,hetLokaal
    from leraars..TitWebRooster where 
	(deKlas = @klas
	and deDag + '-' + deLeraar in (select leraarDag from #leraarsvariant)
            and ((deDag = 'ma' and charIndex(variant,@ma) > 0) or	  	 (deDag = 'di' and charIndex(variant,@di) > 0) or
	  	 (deDag = 'wo' and charIndex(variant,@wo) > 0) or
	  	 (deDag = 'do' and charIndex(variant,@do) > 0) or
	  	 (deDag = 'vr' and charIndex(variant,@vr) > 0)))
)

-----------------------------------------------------
--  Weergave gegevens
-----------------------------------------------------

select * from #leraarRooster